/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package algorithm;


/**
 *
 * @author Pierre
 */
public interface Algorithm {
    public void run() throws AlgorithmErrorException;
    public void initialize() throws AlgorithmErrorException;
    public void produceNextGeneration() throws AlgorithmErrorException;
    public boolean isDone();
    public void addEndReport(EndReport report);
    public void addGenerationReport(GenerationReport report);
    public Population getPopulation();
    public Environment getEnvironment();
}
